package com.mind.system.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.mind.system.domain.AjAttachResult;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Update;

import java.util.List;

public interface AttachResultMapper extends BaseMapper<AjAttachResult> {

    /**
     * 查询附件结果数据集合
     *
     * @param attachResult 附件结果信息
     * @return 附件结果数据集合
     */
    public List<AjAttachResult> selectAttachResultList(AjAttachResult attachResult);

    /**
     * 通过附件结果ID查询附件结果信息
     *
     * @param attachResultId 附件结果ID
     * @return 角色对象信息
     */
    public AjAttachResult selectAttachResultById(Long attachResultId);

    /**
     * 删除附件结果信息
     *
     * @param attachResultId 附件结果ID
     * @return 结果
     */
    public int deleteAttachResultById(Long attachResultId);

    /**
     * 批量删除附件结果信息
     *
     * @param attachResultIds 需要删除的附件结果ID
     * @return 结果
     */
    public int deleteAttachResultByIds(Long[] attachResultIds);

    /**
     * 修改附件结果信息
     *
     * @param attachResult 附件结果信息
     * @return 结果
     */
    public int updateAttachResult(AjAttachResult attachResult);

    /**
     * 新增附件结果信息
     *
     * @param attachResult 附件结果信息
     * @return 结果
     */
    public int insertAttachResult(AjAttachResult attachResult);

    /**
     * 批量新增附件结果信息
     *
     * @param attachResultList 附件结果信息
     * @return 结果
     */
    public int insertAttachResultBatch(List<AjAttachResult> attachResultList);


    /**
     * 根据名称查附件结果
     *
     * @param name 附件结果名称
     * @return 结果
     */
    AjAttachResult selectAttachResultByName(String name);

    /**
     *
     * @param ticketId
     * @param version
     * @return
     */
    List<AjAttachResult> selectAttachList(@Param("ticketId") String ticketId, @Param("version") Integer version);

    @Update("${sql}")
    public void execUpdateSql(@Param("sql") String sql);

    @Insert("${sql}")
    public void execInsertSql(@Param("sql") String sql);

    @Delete("${sql}")
    public void execDeleteSql(@Param("sql") String sql);
}
